home *** CD-ROM | disk | FTP | other *** search
/ Aminet 51 / Aminet 51 (2002)(GTI - Schatztruhe)[!][Oct 2002].iso / Aminet / dev / misc / FlexCat.lha / Lib / Modula2Mod.sd < prev    next >
Encoding:
Text File  |  1999-11-28  |  2.3 KB  |  118 lines

  1. ##rem $Id: Modula2Mod.sd,v 1.2 1999/11/28 03:36:41 carlos Exp $
  2. ##shortstrings
  3. ##stringtype Oberon
  4. IMPLEMENTATION MODULE %bLocale ;
  5.  
  6. (****************************************************
  7.  
  8.   This file was created automatically by '%fv'
  9.   from "%f0".
  10.  
  11.   Do NOT edit by hand!
  12.  
  13. ****************************************************)
  14.  
  15. FROM SYSTEM   IMPORT  ADR, ADDRESS, TAG ;
  16. FROM UtilityD IMPORT  tagDone ;
  17.  
  18. IMPORT  ll  : OptLocaleL,
  19.         ld  : LocaleD ;
  20.  
  21. CONST
  22.   builtinlanguage = %l ;
  23.   version = %v ;
  24.  
  25. VAR
  26.   catalog    : ld.CatalogPtr ;
  27.  
  28. TYPE
  29.   AppString = RECORD
  30.      id  : LONGINT ;
  31.      str : ld.StrPtr ;
  32.   END ;
  33.  
  34.   AppStringArray = ARRAY [0..%n-1] OF AppString ;
  35.  
  36. CONST
  37.   AppStrings = AppStringArray  {
  38.     AppString{id : %i, str : ADR(%iStr)}%(,)
  39.   } ;
  40.  
  41. (*/// "CloseCatalog()" *)
  42.  
  43. PROCEDURE CloseCatalog() ;
  44.  
  45. BEGIN
  46.   IF catalog # NIL THEN
  47.     ll.CloseCatalog(catalog) ;
  48.     catalog := NIL
  49.   END;
  50. END CloseCatalog ;
  51.  
  52. (*\\\*)
  53.  
  54. (*/// "OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;" *)
  55.  
  56. PROCEDURE OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;
  57.  
  58. VAR
  59.    tagPtr : ADDRESS ;
  60.    tags   : ARRAY [0..7] OF LONGINT ;
  61.  
  62. BEGIN
  63.   CloseCatalog() ;
  64.   IF (catalog = NIL) & (ll.localeBase # NIL) THEN
  65.     IF language[0] # "\o" THEN
  66.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  67.                           ld.ocLanguage,        ADR(language),
  68.                           ld.ocVersion,         version,
  69.                           tagDone) ;
  70.      ELSE
  71.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  72.                           ld.ocVersion,         version,
  73.                           tagDone) ;
  74.     END (* IF *) ;
  75.     catalog := ll.OpenCatalogA(loc, ADR("%b.catalog"), tagPtr) ;
  76.   END (* IF *) ;
  77. END OpenCatalog ;
  78.  
  79. (*\\\*)
  80.  
  81. (*/// "GetString(num : LONGINT) : ld.StrPtr" *)
  82.  
  83. PROCEDURE GetString(num : LONGINT) : ld.StrPtr ;
  84.  
  85. VAR
  86.   i       : LONGINT ;
  87.   default : ld.StrPtr ;
  88.  
  89. BEGIN
  90.   i := 0 ;
  91.  
  92.   WHILE (i < %n) AND (AppStrings[i].id # num) DO
  93.     INC(i)
  94.   END (* WHILE *) ;
  95.  
  96.   IF i # %n THEN
  97.     default := AppStrings[i].str ;
  98.    ELSE
  99.     default := NIL ;
  100.   END (* IF *) ;
  101.  
  102.   IF catalog # NIL THEN
  103.     RETURN ll.GetCatalogStr(catalog, num, default) ;
  104.    ELSE
  105.     RETURN default ;
  106.   END (* IF *) ;
  107. END GetString ;
  108.  
  109. (*\\\*)
  110.  
  111. BEGIN
  112.  
  113. CLOSE
  114.  
  115.   CloseCatalog() ;
  116.  
  117. END %bLocale .
  118.